From e006314ac5f5e0f46e8e5686e683921256b38d7f Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Fri, 10 Jun 2005 08:25:44 +0000 Subject: [PATCH] bitkeeper revision 1.1705.1.7 (42a94e88EO8US-LmAPxu7rbUmKFdUg) Move saved_upcall_mask in cpu_user_regs to CS+4 rather than CS+2 on x86/64. Signed-off-by: Keir Fraser --- xen/arch/x86/x86_64/entry.S | 2 +- xen/include/public/arch-x86_64.h | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S index fcf9201e4e..5c3e1a598a 100644 --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -316,7 +316,7 @@ FLT4: movq %rax,16(%rsi) # RFLAGS testb $TBF_INTERRUPT,%cl setnz VCPUINFO_upcall_mask(%rax)# TBF_INTERRUPT -> clear upcall mask popq %rax - shll $16,%eax # Bits 16-23: saved_upcall_mask + shlq $32,%rax # Bits 32-39: saved_upcall_mask movw UREGS_cs+8(%rsp),%ax # Bits 0-15: CS FLT5: movq %rax,8(%rsi) # CS/saved_upcall_mask movq UREGS_rip+8(%rsp),%rax diff --git a/xen/include/public/arch-x86_64.h b/xen/include/public/arch-x86_64.h index 65efc977a5..a4f4ac2fcf 100644 --- a/xen/include/public/arch-x86_64.h +++ b/xen/include/public/arch-x86_64.h @@ -153,16 +153,16 @@ typedef struct cpu_user_regs { u32 error_code; /* private */ u32 entry_vector; /* private */ union { u64 rip, eip; }; - u16 cs; + u16 cs, _pad0[1]; u8 saved_upcall_mask; - u8 _pad0[5]; + u8 _pad1[3]; union { u64 rflags, eflags; }; union { u64 rsp, esp; }; - u16 ss, _pad1[3]; - u16 es, _pad2[3]; - u16 ds, _pad3[3]; - u16 fs, _pad4[3]; /* Non-zero => takes precedence over fs_base. */ - u16 gs, _pad5[3]; /* Non-zero => takes precedence over gs_base_user. */ + u16 ss, _pad2[3]; + u16 es, _pad3[3]; + u16 ds, _pad4[3]; + u16 fs, _pad5[3]; /* Non-zero => takes precedence over fs_base. */ + u16 gs, _pad6[3]; /* Non-zero => takes precedence over gs_base_user. */ } cpu_user_regs_t; typedef u64 tsc_timestamp_t; /* RDTSC timestamp */ -- 2.30.2